-
Notifications
You must be signed in to change notification settings - Fork 667
Update selective build example + CI for top-level targets #13741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update selective build example + CI for top-level targets #13741
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/13741
Note: Links to docs will display an error until the docs builds have been completed. ❌ 9 New FailuresAs of commit f558d67 with merge base 9ffcf4b ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
29111dd
to
aa5a45c
Compare
6c2d7fa
to
1c8efdf
Compare
@psiddh What are your thoughts on the updated example and README? |
The README is much better now and clear.
|
Thanks. I did include this on lines 67 and 135, though it might not be discoverable enough. Do you have any suggestions for how to expose this info? |
1c8efdf
to
f558d67
Compare
f558d67
to
cec052a
Compare
|
||
if(NOT CMAKE_CXX_STANDARD) | ||
set(CMAKE_CXX_STANDARD 17) | ||
# Can't set to 11 due to executor_runner.cpp make_unique |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
executorch in general requires 17 anyway, doesn't it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we can remove this, as it's a holdover from an older version of the example. I'll clean it up.
Summary
Update the selective build example and CI to use the new top-level targets, where appropriate. I've positioned the example as showcasing two flows - a standard way, using top-level targets, and appropriate for most use cases, and an advanced flow where the user creates a custom kernel target. This is mainly useful when integrating custom ops, which we can't easily integrate with top-level targets due to the inverted dependency on the user build.
I've updated the CMake to take an additional arg to specify whether or not to define a custom target and refactored to use the standard top-level target when not. I've also unified the CMake option naming with the top-level target. Finally, I've updated the CI job to cover both flows.
For additional context, I'd like to take a larger look at simplifying the selective build flows and CMake APIs. This will likely happen after 1.0, as it will be a larger effort.
Tracking task: #12948.
Test plan
Changes are covered by the test selective build job.